package ar.edu.untref.edd3.persistencia;

import java.util.List;

import junit.framework.Assert;

import org.hibernate.Session;
import org.junit.Ignore;
import org.junit.Test;

import ar.edu.untref.edd3.model.Domicilio;
import ar.edu.untref.edd3.model.Persona;
import ar.edu.untref.edd3.model.PersonaDaoHibernateImp;
import ar.edu.untref.edd3.persistence.HibernateUtil;

/**
 * Test de Persistencia de la clase Persona usando Hibernate
 */
public class PersonaTestCases {

	@Test
	public void testConection(){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Assert.assertTrue(session.isConnected());
	}
	
	@Ignore
	public void testSavePersona(){
		Persona persona = new Persona();
		persona.setNombre("Nacho");
		persona.setApellido("Reilly");
		persona.setEmail("mail@mail.com");
		
		PersonaDaoHibernateImp p = new PersonaDaoHibernateImp();
		p.save(persona);
		HibernateUtil.getSessionFactory().close();
		
	}
	
	@Test
	public void testFindPersona(){
		PersonaDaoHibernateImp manejadorPersonas = new PersonaDaoHibernateImp();
		List<Persona> personas = manejadorPersonas.findByNombre("Nacho");
		
		System.out.println(personas.size());

		Assert.assertTrue(personas.size() != 0);
	}
	
	@Test
	public void testSavePersonaConDomicilio(){
		Persona persona = new Persona();
		persona.setNombre("Nacho");
		persona.setApellido("Reilly");
		persona.setEmail("mail@mail.com");
		
		Domicilio domicilio = new Domicilio();
		domicilio.setCalle("calle");
		domicilio.setNumero(1234);
		
		persona.setDomicilio(domicilio);
		
		PersonaDaoHibernateImp p = new PersonaDaoHibernateImp();
		p.save(persona);
		HibernateUtil.getSessionFactory().close();
		
	}
	
	//@Test
	public void insertPersonaCompleta() {
		
		
	}

}
